home *** CD-ROM | disk | FTP | other *** search
/ ftp.cs.arizona.edu / ftp.cs.arizona.edu.tar / ftp.cs.arizona.edu / icon / newsgrp / group99a.txt / 000167_icon-group-sender _Tue Jul 27 16:55:25 1999.msg < prev    next >
Internet Message Format  |  2000-09-20  |  2KB

  1. Return-Path: <icon-group-sender>
  2. Received: (from root@localhost)
  3.     by baskerville.CS.Arizona.EDU (8.9.1a/8.9.1) id QAA01509
  4.     for icon-group-addresses; Tue, 27 Jul 1999 16:54:55 -0700 (MST)
  5. Message-Id: <199907272354.QAA01509@baskerville.CS.Arizona.EDU>
  6. From: "Nevin Liber" <nevin@eviloverlord.com>
  7. To: <icon-group@optima.CS.Arizona.EDU>
  8. Cc: "Frank Lhota" <lhotaf@lexma.meitech.com>
  9. Subject: Re: The Correct Basename Documentation
  10. Date: Tue, 27 Jul 1999 18:32:31 -0500
  11. X-Priority: 3 (Normal)
  12. X-MSMail-Priority: Normal
  13. Importance: Normal
  14. X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2014.211
  15. Errors-To: icon-group-errors@optima.CS.Arizona.EDU
  16. Status: RO
  17.  
  18. >>   A wise man once said, ``If you change the specification of a =
  19. >> procedure, also change its name.''
  20.  
  21. > As a result, the right way to keep basename true to its name is too keep =
  22. > its current behavior, that is, matching its Unix namesake.
  23.  
  24. I'm not sure this is the correct behavior (I'm not sure it isn't either).
  25.  
  26. Whenever someone makes a change to a public library or API, what that person
  27. really has to weigh is how much of the installed base of code depends on the
  28. previous buggy or unspecified behavior.  While most would agree that it is a
  29. bad idea to code to an implementation instead of an interface (can anyone
  30. tell that I'm in the middle of reading Design Patterns? :-)), library
  31. writers, OS implementers, etc., have to worry about the people who do code
  32. to a specific, concrete implementation.
  33.  
  34. Just changing the documentation isn't enough; what you really have to do is
  35. regression test any code that is dependent upon the particular routine you
  36. are "improving".  In practice, this can't be accomplished, because you
  37. really don't know the entire user base of your library, so you have to
  38. guess.
  39.  
  40. It isn't the new users of the function that worry me nearly as much as the
  41. existing users of the function.  Are people dependent on the previous
  42. behavior?
  43. __
  44.  Nevin ":-)" Liber  <mailto:nevin@eviloverlord.com>  (312) 855-1000 x199
  45.  
  46.